def find_max(arr)
  # 处理空数组的情况
  return nil if arr.empty?
  
  # 使用Ruby内置的max方法，更简洁高效
  arr.max
end

# 或者如果需要自定义实现，可以使用以下方式：
def find_max_custom(arr)
  # 处理空数组的情况
  return nil if arr.empty?
  
  # 使用reduce方法，更符合函数式编程风格
  arr.reduce { |max, value| value > max ? value : max }
end

# 测试代码
test_cases = [
  [1, 2, 3, 4, 5],
  [5, 4, 3, 2, 1],
  [1],
  [],
  [1, 1, 1, 1],
  [-10, -5, 0, 5, 10],
  [nil, 1, 2, 3]
]

puts "测试结果："
test_cases.each do |arr|
  puts "数组: #{arr.inspect}"
  puts "最大值 (内置方法): #{find_max(arr)}"
  puts "最大值 (自定义方法): #{find_max_custom(arr)}"
  puts "---"
end 